Add radio button rendering for enum Dag Params - #71180
Conversation
cbebad7 to
fc31540
Compare
bbovenzi
left a comment
There was a problem hiding this comment.
I'm wary of adding a new x-airflow-ui option to declaring params. First the name isn't great. Second, we should define how we plan to expand this in the future.
Second, I am not sure if this closes the old issue because the person asked for a selector or a radio over plain text. I don't think it matters as much which of the two exist.
Third, the radio has no option to unselect when it is an optional param.
cfb5629 to
fc31540
Compare
|
Good afternoon. To clarify the current state of this PR: The trigger form already renders enum values as choices via the existing dropdown support, and this PR experiments with rendering the same enum values as radio buttons via I also agree that the selector vs radio part is secondary. The main missing design question is how Airflow should expose UI presentation preferences for Params in a way that can be extended later. The current Given that, I think there are two possible directions:
I’m happy to take either direction. If maintainers think this PR should define the broader UI extension shape, I can work on that here; otherwise I can reduce this PR to the existing enum dropdown/docs pattern. |
Why
Dag authors currently cannot choose a radio button UI for enum Params in the Trigger Dag form. This makes small, fixed choice sets less convenient, especially when the choices are generated from deployment-local configuration such as an INI file.
Solution
Add an opt-in
x-airflow-ui.widget = "radio"schema hint for enum Params. Enum Params continue to render as dropdowns by default, while Params with the radio widget hint render as radio buttons.The Params documentation and tutorial Dag also show how to generate enum choices from a colocated INI file at Dag parse time, so the Trigger Dag form uses serialized Dag Params instead of calling a dynamic choice provider.
Helps address #56632.
Screenshot
Trigger Dag form showing an enum Param rendered as radio buttons:
Was generative AI tooling used to co-author this PR?
[X]Yes (please specify the tool below)Generated-by: [Codex] following the guidelines
{pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.